﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebUtils.Controls;
using BussinessLogicTecnoPez.AtencionCliente.Pedido;
using BussinessLogicTecnoPez.AtencionCliente.Cliente;
using System.Text;

public partial class Modules_AtencionCliente_Pedido_ListadoDePedidosAarmar : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            rblPrioridad.Items.Clear();
            rblPrioridad.Items.Add(new ListItem("Alta", "1"));
            rblPrioridad.Items.Add(new ListItem("Media", "2"));
            rblPrioridad.Items.Add(new ListItem("Baja", "3"));
            rblPrioridad.Items.Add(new ListItem("Todos", "4"));
            rblPrioridad.SelectedValue = "4";
        }

        TPPCliente.ObjType = typeof(Cliente);

        GenericMasterPage master = (GenericMasterPage)this.Master;
        master.Imagen = "../Styles/Icons/wordprocessing.png";
        master.Titulo = "Listado de pedidos a armar";
    }
    protected void cmdGenerar_Click(object sender, EventArgs e)
    {
        DateTime datEntregaDesde;
        DateTime datEntregaHasta;
        DateTime datEmisionDesde;
        DateTime datEmisionHasta;

        StringBuilder strFiltro = new StringBuilder();

        if (TPCFechaEmisionDesde.Text.Trim() != string.Empty && TPCFechaEmisionHasta.Text.Trim() != string.Empty)
        {
            if (!DateTime.TryParse(TPCFechaEmisionDesde.Text, out datEmisionDesde))
            {
                lblError.Text = "Fecha de emisión desde no posee el formato correcto";
                return;
            }
            if (!DateTime.TryParse(TPCFechaEmisionHasta.Text, out datEmisionHasta))
            {
                lblError.Text = "Fecha de emisión hasta no posee el formato correcto";
                return;
            }

            if (datEmisionDesde > datEmisionHasta)
            {
                lblError.Text = "La fecha de emisión desde no puede ser superior a la fecha de emisión hasta.";
                return;
            }

            strFiltro.Append(" AND {PEDIDOS.FECHAEMISION} >= #" + TPCFechaEmisionDesde.Text + "#");
            strFiltro.Append(" AND {PEDIDOS.FECHAEMISION} <= #" + TPCFechaEmisionHasta.Text + "#");

            //strFiltro.Append(" AND {PEDIDOS.FECHAEMISION} >= #" + datEmisionDesde + "#");
            //strFiltro.Append(" AND {PEDIDOS.FECHAEMISION} <= #" + datEmisionHasta + "#");
        }
        else
        {
            if (TPCFechaEmisionDesde.Text.Trim() == string.Empty && TPCFechaEmisionHasta.Text.Trim() != string.Empty)
            {
                lblError.Text = "La fecha de emisión desde es requerida.";
                return;
            }
            if (TPCFechaEmisionDesde.Text.Trim() != string.Empty && TPCFechaEmisionHasta.Text.Trim() == string.Empty)
            {
                lblError.Text = "La fecha de emisión hasta es requerida.";
                return;
            }
        }

        if (TPCFechaEntregaDesde.Text.Trim() != string.Empty && TPCFechaEntregaHasta.Text.Trim() != string.Empty)
        {
            if (!DateTime.TryParse(TPCFechaEntregaDesde.Text, out datEntregaDesde))
            {
                lblError.Text = "Fecha de entrega desde no posee el formato correcto";
                return;
            }
            if (!DateTime.TryParse(TPCFechaEntregaHasta.Text, out datEntregaHasta))
            {
                lblError.Text = "Fecha de entrega hasta no posee el formato correcto";
                return;
            }

            if (datEntregaDesde > datEntregaHasta)
            {
                lblError.Text = "La fecha de entrega desde no puede ser superior a la fecha de entrega hasta.";
                return;
            }

            //strFiltro.Append(" AND {PEDIDOS.FECHAENTREGA} >= #" + datEntregaDesde + "#");
            //strFiltro.Append(" AND {PEDIDOS.FECHAENTREGA} <= #" + datEntregaHasta + "#");

            strFiltro.Append(" AND {PEDIDOS.FECHAENTREGA} >= #" + TPCFechaEntregaDesde.Text + "#");
            strFiltro.Append(" AND {PEDIDOS.FECHAENTREGA} <= #" + TPCFechaEntregaHasta.Text + "#");
        }
        else
        {
            if (TPCFechaEntregaDesde.Text.Trim() == string.Empty && TPCFechaEntregaHasta.Text.Trim() != string.Empty)
            {
                lblError.Text = "La fecha de entrega desde es requerida.";
                return;
            }
            if (TPCFechaEntregaDesde.Text.Trim() != string.Empty && TPCFechaEntregaHasta.Text.Trim() == string.Empty)
            {
                lblError.Text = "La fecha de entrega hasta es requerida.";
                return;
            }
        }

        if (TPPCliente.ItemSelected != null)
        {
            Cliente objCliente = TPPCliente.ItemSelected as Cliente;
            strFiltro.Append(" AND {CLIENTES.IDCLIENTE}=" + objCliente.IdCliente);
        }

        if (Convert.ToInt32(rblPrioridad.SelectedValue) < 4)
        {
            strFiltro.Append(" AND {PEDIDOS.PRIORIDAD}=" + rblPrioridad.SelectedValue);
        }

        visorDeReportes vr = new visorDeReportes();
        vr.archivoReporte = new rptPedidosAarmar();
        vr.paradescript = "";
        vr.paravalor = "";
        vr.selectionFormula = "{PEDIDOS.IDTIPOESTADOPEDIDO}=1 AND ISNULL({PEDIDOS.FECHAARMADO}) " + strFiltro.ToString();
        vr.verReporte(Page);
    }
}
